package com.example.kotlindemo.fragments // 你的包名可能不同

import android.os.Bundle
import android.util.Log // 用于错误日志
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.viewpager2.widget.ViewPager2 // 导入 ViewPager2
import com.example.kotlindemo.R // 导入 R 文件
import com.example.kotlindemo.adapter.HomeTabsAdapter // 导入你的 Adapter
import com.google.android.material.tabs.TabLayout // 导入 TabLayout
import com.google.android.material.tabs.TabLayoutMediator // 导入 TabLayoutMediator

class HomeFragment : Fragment() {

    // 声明视图变量，初始化为 null
    private var homeViewPager: ViewPager2? = null
    private var homeTabLayout: TabLayout? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? { // 返回值改为 View? (可空)
        // 直接使用 inflater 加载布局文件
        // 确保 R.layout.fragment_home 是你正确的布局文件名
        return inflater.inflate(R.layout.fragment_home, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        // --- 使用 findViewById 初始化视图 ---
        // 确保 R.id.home_view_pager 和 R.id.home_tab_layout 是正确的 ID
        homeViewPager = view.findViewById(R.id.home_view_pager)
        homeTabLayout = view.findViewById(R.id.home_tab_layout)

        // --- 检查视图是否成功找到 ---
        if (homeViewPager == null || homeTabLayout == null) {
            Log.e("HomeFragment", "Error: ViewPager2 or TabLayout not found in the layout!")
            // 可以选择返回或抛出异常，防止后续代码出错
            return
        }

        // --- 后续逻辑不变，但使用成员变量 homeViewPager 和 homeTabLayout ---
        val adapter = HomeTabsAdapter(this) // 创建 Adapter

        // 使用非空断言 (!!) 因为前面已经检查过非空，或者继续使用安全调用 (?.)
        homeViewPager!!.adapter = adapter // 或者 homeViewPager?.adapter = adapter

        // 将 TabLayout 和 ViewPager2 连接起来
        // 使用非空断言 (!!) 因为前面已经检查过非空
        TabLayoutMediator(homeTabLayout!!, homeViewPager!!) { tab, position ->
            // 设置 Tab 的标题
            tab.text = getTabTitle(position)
        }.attach()

        // 内层 ViewPager2 默认允许滑动 (isUserInputEnabled = true)
        // 如果需要设置，则: homeViewPager!!.isUserInputEnabled = true
    }

    // 根据位置获取 Tab 标题 (示例) - 这个函数保持不变
    private fun getTabTitle(position: Int): String {
        return when (position) {
            0 -> "推荐"
            1 -> "热门"
            2 -> "活动"
            3 -> "商城"
            4 -> "直播"
            5 -> "关注"
            6 -> "其他"
            else -> "Unknown"
        }
    }

    override fun onDestroyView() {
        super.onDestroyView()
        // --- 清理视图引用，防止内存泄漏 ---
        // 虽然 Fragment 生命周期通常会处理，但显式设置为 null 是个好习惯
        homeViewPager = null
        homeTabLayout = null
        // 注意：这里不再需要 _binding = null
    }
}
